package com.freemalll.system.mapper;

import java.util.List;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.freemalll.system.domain.SysAccountLeader;

/**
 * 账户领导关系 数据层
 * 
 * @author freemalll
 */
public interface SysAccountLeaderMapper extends BaseMapper<SysAccountLeader>
{
    /**
     * 查询账户领导关系信息
     * 
     * @param accountLeader 账户领导关系信息
     * @return 账户领导关系信息
     */
    public SysAccountLeader selectAccountLeader(SysAccountLeader accountLeader);

    /**
     * 通过ID查询账户领导关系
     * 
     * @param id 账户领导关系ID
     * @return 账户领导关系信息
     */
    public SysAccountLeader selectAccountLeaderById(String id);

    /**
     * 查询账户领导关系列表
     * 
     * @param accountLeader 账户领导关系信息
     * @return 账户领导关系集合
     */
    public List<SysAccountLeader> selectAccountLeaderList(SysAccountLeader accountLeader);

    /**
     * 根据账户ID查询领导关系
     * 
     * @param accountId 账户ID
     * @return 账户领导关系集合
     */
    public List<SysAccountLeader> selectAccountLeaderByAccountId(String accountId);

    /**
     * 根据领导账户ID查询下属关系
     * 
     * @param leaderAccountId 领导账户ID
     * @return 账户领导关系集合
     */
    public List<SysAccountLeader> selectAccountLeaderByLeaderId(String leaderAccountId);

    /**
     * 删除账户领导关系
     * 
     * @param id 账户领导关系ID
     * @return 结果
     */
    public int deleteAccountLeaderById(String id);

    /**
     * 批量删除账户领导关系
     * 
     * @param ids 需要删除的账户领导关系ID
     * @return 结果
     */
    public int deleteAccountLeaderByIds(String[] ids);

    /**
     * 根据账户ID删除所有相关关系
     * 
     * @param accountId 账户ID
     * @return 结果
     */
    public int deleteAccountLeaderByAccountId(String accountId);

    /**
     * 根据领导账户ID删除所有相关关系
     * 
     * @param leaderAccountId 领导账户ID
     * @return 结果
     */
    public int deleteAccountLeaderByLeaderId(String leaderAccountId);
}